import java.sql.*;
import java.util.Date;

public class Demo {
    // MySQL 8.0 以上版本 - JDBC 驱动名及数据库 URL
    static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
    static final String DB_URL = "jdbc:mysql://localhost:3306/javadb?useSSL=false&serverTimezone=UTC";
    // 数据库的用户名与密码，需要根据自己的设置
    static final String USER = "root";
    static final String PASS = "zhangliu0412";

    public static void main(String[] args) {
        Connection con = null; //connection接口
        Statement stmt = null; //statement接口
        try {
            // 加载 JDBC 驱动
            Class.forName(JDBC_DRIVER);
            // 与数据库建立连接
            con = DriverManager.getConnection(DB_URL, USER, PASS);
            // 执行查询SQL语句，并得到返回结果
            stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery("SELECT empno, ename FROM emp");
            // 处理返回的结果
            while (rs.next()) {
                // 通过字段检索
                int empno = rs.getInt("empno");
                String ename = rs.getString("ename");

                // 输出数据
                System.out.print("empno: " + empno);
                System.out.print(", ename: " + ename);
                System.out.println();
            }

            // 执行添加sql
//            PreparedStatement pstmt = con.prepareStatement("insert into emp(empno, ename, job, hiredate ,sal) values(?,?,?,?,?)");//获得预置对象
//            pstmt.setString(1, "1999");//设置占位符的值
//            pstmt.setString(2, "王六");
//            pstmt.setString(3, "经理");
            //将日期格式转换
//            java.util.Date date = new java.util.Date();
//            pstmt.setDate(4, new java.sql.Date(date.getTime()));
//            pstmt.setDouble(5, 6000.00);
//            int res = pstmt.executeUpdate();

            // 执行删除sql
            //int result = stmt.executeUpdate("delete from  emp where empno=1002");

            // 执行更新sql
            //int result = stmt.executeUpdate("update emp set ename='赵六' where empno=1999");

            // 完成后关闭 释放资源
            rs.close();

        } catch (SQLException se) {
            // 处理 JDBC 错误
            se.printStackTrace();
        } catch (Exception e) {
            // 处理 Class.forName 错误
            e.printStackTrace();
        } finally {
            // 关闭资源
            try {
                if (stmt != null) stmt.close();
            } catch (SQLException se2) {
            }// 什么都不做
            try {
                if (con != null) con.close();
            } catch (SQLException se) {
                se.printStackTrace();
            }
        }
    }
}